bleh
[mqlkit.git] / Meta COT Expert.mq4
blob78bacf86631958dec177f0f10a8a9397d6e34f42
1 //+------------------------------------------------------------------+
2 //|                                       Meta COT Net Positions.mq4 |
3 //|   Copyright  2009, C-4 (Vasiliy Sokolov, Russia, St.-Petersburg,|
4 //|                                      2009), All Rights Reserved. |
5 //|                                                   vs-box@mail.ru |
6 //+------------------------------------------------------------------+
7 #property copyright "Copyright  2009, C-4, All Rights Reserved."
8 #property link      "vs-box@mail.ru"
9 #property show_inputs
10 extern int  period=26;
11 extern int  indicator_tape=21; //     cotlib.mq4   defines
12 int movement_index=6;
13 #include <cotlib.mq4>
15 int handle;
16 int buy_level_down;
17 int buy_level_up;
18 int sell_level_down;
19 int sell_level_up;
20 double ticksize;
21 int init(){
22    //handle=FileOpen("COT - U.S. DOLLAR CONCATENATE.csv",FILE_READ|FILE_CSV);
23    //if(handle==-1)Print("   ");
24    if(init_data()==false)error=true;
25    if(error==false)load_data();
26    if(error==false)count_data();
27    //if(error==true)Print("---------->>>>>>> ERORR!!! <<<<<<<<<--------------");
28    setparam();
31 int start()
33    if(Volume[0]==1){
34       if(OrdersTotal()>0)return;
35       if(buy_level_up==0)return;
36       if(type_op()==OP_BUY&&delta_fma()>0&&delta_sma()>0){
37          OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-ticksize*100*(period/26),Ask+ticksize*300*(period/26),"",12345,0,Blue);
38       }
39       if(type_op()==OP_SELL&&delta_fma()<0&&delta_sma()<0){
40          OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+ticksize*100*(period/26),Ask-ticksize*300*(period/26),"",12345,0,Red);
41       }
42       //Print(get_data(WILLCO_OPERATORS, 0));
43    }
46 double delta_fma()
48    //return(iMA(Symbol(),0,5+(1-(period/26)),0,MODE_SMA,PRICE_CLOSE,0)-
49    //       iMA(Symbol(),0,5+(1-(period/26)),0,MODE_SMA,PRICE_CLOSE,2));
50    return(iMA(Symbol(),0,5,0,MODE_SMA,PRICE_CLOSE,0)-
51           iMA(Symbol(),0,5,0,MODE_SMA,PRICE_CLOSE,2));
54 double delta_sma()
56    return(iMA(Symbol(),PERIOD_W1,period,0,MODE_SMA,PRICE_CLOSE,0)-
57           iMA(Symbol(),PERIOD_W1,period,0,MODE_SMA,PRICE_CLOSE,2));
60 void setparam()
62    switch(indicator_tape){
63       case WILLCO_OPERATORS:        // 17
64       case INDEX_OI:                // 19
65       case INDEX_OPERATORS:         // 21
66            buy_level_down=80;
67            buy_level_up=100;
68            sell_level_down=0;
69            sell_level_up=20;
70       case WILLCO_NONCOMM:          // 16
71       case WILLCO_NONREP:           // 18
72       case INDEX_NONCOMM:           // 20
73       case INDEX_NONREP:            // 22
74            buy_level_down=0;
75            buy_level_up=20;
76            sell_level_down=80;
77            sell_level_up=100;
78       case MOVEMENT_NONCOMM:        // 23
79       case MOVEMENT_NONREP:         // 25
80       case MOVEMENT_OI:             // 26
81            /*buy_level_down=-100;
82            buy_level_up=-40;
83            sell_level_down=40;
84            sell_level_up=100;*/
85            buy_level_down=40;
86            buy_level_up=100;
87            sell_level_down=-100;
88            sell_level_up=-40;
89       case MOVEMENT_OPERATORS:      // 24
90            buy_level_down=40;
91            buy_level_up=100;
92            sell_level_down=-100;
93            sell_level_up=-40;
94    }
95    ticksize=MarketInfo(Symbol(), MODE_TICKSIZE);
98 int type_op()
100    if(get_data(indicator_tape,0)>=buy_level_down&&get_data(indicator_tape,0)<=buy_level_up)
101       return(OP_BUY);
102    if(get_data(indicator_tape,0)>=sell_level_down&&get_data(indicator_tape,0)<=sell_level_up)
103       return(OP_SELL);
104    else return(-1);